from django.urls import path
from django.contrib.auth import views as auth_views
from .views import (
    UserListCreateView,
    UserDetailView,
    AssignRoleView,
    CustomLoginAPIView,
    CustomLogoutAPIView,
)

urlpatterns = [
    # 用户管理相关接口
    path('users/', UserListCreateView.as_view(), name='user-list-create'),  # 创建用户 & 查询用户列表
    path('users/<int:user_id>/', UserDetailView.as_view(), name='user-detail'),  # 查询用户详情 & 修改用户信息 & 删除用户
    path('users/<int:user_id>/reset-password/', UserDetailView.as_view(), name='reset-password'),  # 重置密码接口
    # 用户角色分配接口
    path('users/<int:user_id>/roles/', AssignRoleView.as_view(), name='assign-role'),
    # 登录
    path('login/', CustomLoginAPIView.as_view(), name='login'),
    path('logout/', CustomLogoutAPIView.as_view(), name='logout'),  # 登出接口
    # 重置登录密码
    # 提供密码重置请求页面（用户输入邮箱）
    path('reset_password/', auth_views.PasswordResetView.as_view(), name='password_reset'),
    # 提供密码重置确认页面（用户点击链接设置新密码）
    path('reset_password_confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    # 提供密码重置完成页面（提示用户密码已重置成功）
    path('reset_password_done/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'),
    # 提供密码重置成功页面（密码已成功重置）
    path('reset_password_complete/', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'),
]
